{
 "cells": [
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 再次调整弱分类器"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {},
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "/anaconda3/lib/python3.6/site-packages/sklearn/cross_validation.py:41: DeprecationWarning: This module was deprecated in version 0.18 in favor of the model_selection module into which all the refactored classes and functions are moved. Also note that the interface of the new CV iterators are different from that of this module. This module will be removed in 0.20.\n",
      "  \"This module will be removed in 0.20.\", DeprecationWarning)\n"
     ]
    }
   ],
   "source": [
    "# import tool kit\n",
    "from xgboost import XGBClassifier\n",
    "import xgboost as xgb\n",
    "\n",
    "import pandas as pd \n",
    "import numpy as np\n",
    "\n",
    "from sklearn.model_selection import GridSearchCV\n",
    "from sklearn.model_selection import StratifiedKFold\n",
    "\n",
    "from sklearn.metrics import log_loss\n",
    "\n",
    "from matplotlib import pyplot\n",
    "import seaborn as sns\n",
    "%matplotlib inline"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "# read data\n",
    "dpath = './data/'\n",
    "train = pd.read_csv(dpath + 'RentListingInquries_FE_train.csv')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "y_train = train['interest_level']\n",
    "train = train.drop(['interest_level'], axis=1)\n",
    "X_train = np.array(train)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "# 各类样本不均衡，交叉验证是采用StratifiedKFold，在每折采样时各类样本按比例采样\n",
    "kfold = StratifiedKFold(n_splits=5, shuffle=True, random_state=3)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "metadata": {},
   "outputs": [],
   "source": [
    "def modelfit(alg, X_train, y_train, useTrainCV=True, cv_folds=None, early_stopping_rounds=100):\n",
    "    if useTrainCV:\n",
    "        xgb_params = alg.get_xgb_params()\n",
    "        xgb_params['num_class'] = 3\n",
    "\n",
    "        xgbtrain = xgb.DMatrix(X_train, label=y_train)\n",
    "        cvresult = xgb.cv(xgb_params, xgbtrain, num_boost_round=alg.get_params()['n_estimators'], folds=list(cv_folds.split(X_train,y_train)),\n",
    "                         metrics='mlogloss', early_stopping_rounds=early_stopping_rounds)\n",
    "        #     cvresult = xgb.cv(xgb_param, xgbtrain, num_boost_round=alg.get_params()['n_estimators'], folds =cv_folds,\n",
    "        #              metrics='mlogloss', early_stopping_rounds=early_stopping_rounds)\n",
    "        cvresult.to_csv('2_3_nestimators_314.csv', index_label = 'n_estimators')\n",
    "    \n",
    "    # 最佳参数\n",
    "    n_estimators = cvresult.shape[0]\n",
    "    alg.set_params(n_estimators = n_estimators)\n",
    "    alg.fit(X_train, y_train, eval_metric='mlogloss')\n",
    "    \n",
    "    train_predprob = alg.predict_proba(X_train)\n",
    "    logloss = log_loss(y_train, train_predprob)\n",
    "\n",
    "        \n",
    "    #Print model report:\n",
    "    print (\"logloss of train :\" )\n",
    "    print (logloss)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 8,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "logloss of train :\n",
      "0.509608433638\n"
     ]
    }
   ],
   "source": [
    "xgb2_3 = XGBClassifier(learning_rate=0.1, \n",
    "                       n_estimators=314, # 上一轮得出\n",
    "                       max_depth=5,                       \n",
    "                       min_child_weight=5, \n",
    "                       gamma=0, \n",
    "                       subsample=0.3, \n",
    "                       colsample_bytree=0.8, \n",
    "                       colsample_bylevel=0.7, \n",
    "                       objective= 'multi:softprob',\n",
    "                       seed=3)\n",
    "modelfit(xgb2_3, X_train, y_train, cv_folds=kfold)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 9,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\nBGqvLTf08a1H7KinTt7dt8dcFiVkA47b1cc9t2uqbZpFmzDPiE0xfOSjqCBHlztGaM9bPvDtW97+\nzsffzlhMNiDWAAAgAElEQVSwLrcAII8UlXiVNCErrjQ+SR1QPnhXCCSMKYYoyu5bbODj+44Jkq7U\nlKHHTmyvU58KpikeuksLDRk/XZJUzaSFy6Kfo1e+/MPH/3z8Cx+fNCiKb3xzsqpVixLBtybO8PGy\nFasSuRcA2ZM+3TDT8Uxl7sty7aLK4VM2H1g7fvKBckRxDZTULptG0xSvPGg7n2iNu7Knpv69xBfr\nOG2fLfRoWIK+cd2amrck2Dds0h/R6Nbzn08rdO1rXp/s406xUvYnPfG5GtWt6dtPjp7i49kLqaoI\noPwUlxSSnKGyYOogkCXxKYdN6tdh+iEyql2zuto0a+DbZ3Rp7ePhF0bl6+/su5OPz+rSWqd3js7b\nPbZmLO7zKXP13uQ/ffuBD3728f73RlUVL3llou5+7wffHvLVdB9/8uMcH/PHAwDpipuyWJbXMM0R\n+YREC8gxrPlCWXTdJto/7LweW6tfz619e8Dx7Xz84cWFk7OrDtrOt/+x08Y+js081BsTZhTayPnG\nt771cb/BE3zc4cb31em2D317+ORZZbkVACiRkiZkSe93RrKHkiLRAnIciReS1KBONFXwgB031jG7\nb+bb1xy8vY8/+k9XH1/Uq42O2yM6b5+tm/h42+bRaJsk/R3be+zSVyf5+PSwTL4k/Xfc7z4e/fNf\nGvPzX769cNmKEt8LAKyrkiRkxSVnZRmxQ9XBuzYgjxS15ot/0JG0+GbPp+yzhSTpuc9+kyTdc9TO\nfuH7s6fu7uNPL+uu3+ctVZ9wv7Ctm9bXj+EeY1/+Ns9f79Z3vvfxqU+NLfR5u935kY8PC9elSdKR\nA8eoRvXob4NnP/eVj294MxphGz55FvuTAcgJJd20Wip9kZGizivrtflDbvngqwpUAukJmKQii3BQ\nkAPlpeF6NbX9etGI2Qun7+H/I7/+kO119WtBUY6u22ykEd/PliS1aVZfzsknZHHT5i718aTphUvZ\nf/7r3z5+bXy0ZuzfL44vdN4FsamN706a6eMfZi1Uvdpr/y9w+cqoSuOfC5ZpFXuaAaiE2Di7fDB1\nEKjCmJaIinLAjtH6r3jhjiHndNRr53b07U8u6erjx05s7+OHjmun+2IbQ9946A4+PjNWIKRti4Zq\n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\nNKdxhwAAAABJRU5ErkJggg==\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x1a104bb0f0>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "cvresult = pd.DataFrame.from_csv('2_3_nestimators_314.csv')\n",
    "\n",
    "cvresult = cvresult.iloc[100:]\n",
    "# plot\n",
    "test_means = cvresult['test-mlogloss-mean']\n",
    "test_stds = cvresult['test-mlogloss-std'] \n",
    "        \n",
    "train_means = cvresult['train-mlogloss-mean']\n",
    "train_stds = cvresult['train-mlogloss-std'] \n",
    "\n",
    "x_axis = range(100,cvresult.shape[0]+100)\n",
    "        \n",
    "fig = pyplot.figure(figsize=(10, 10), dpi=100)\n",
    "pyplot.errorbar(x_axis, test_means, yerr=test_stds ,label='Test')\n",
    "pyplot.errorbar(x_axis, train_means, yerr=train_stds ,label='Train')\n",
    "pyplot.title(\"XGBoost n_estimators vs Log Loss\")\n",
    "pyplot.xlabel( 'n_estimators' )\n",
    "pyplot.ylabel( 'Log Loss' )\n",
    "pyplot.savefig( 'n_estimators_detail4_2_3_314.png' )\n",
    "\n",
    "pyplot.show()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "调整后的 n_estimators 为313，继续进行行列采样。"
   ]
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.6.3"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 2
}
